package com.google.gwt.maps.v3.client.streetview;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.maps.v3.client.streetview.impl.StreetViewLinkImpl;

public class StreetViewLink implements HasStreetViewLink {

  protected final JavaScriptObject jso;
  
  private static final StreetViewLinkImpl impl = StreetViewLinkImpl.impl;
  
  public StreetViewLink(final JavaScriptObject jso) {
    this.jso = jso;
  }
  
  public StreetViewLink() {
    this(impl.construct());
  }
  
  @Override
  public String getDescription() {
    return impl.getDescription(jso);
  }

  @Override
  public double getHeading() {
    return impl.getHeading(jso);
  }

  @Override
  public String getPano() {
    return impl.getPano(jso);
  }

  @Override
  public String getRoadColor() {
    return impl.getRoadColor(jso);
  }

  @Override
  public double getRoadOpacity() {
    return impl.getRoadOpacity(jso);
  }

  @Override
  public void setDescription(String description) {
    impl.setDescription(jso, description);
  }

  @Override
  public void setHeading(double heading) {
    impl.setHeading(jso, heading);
  }

  @Override
  public void setPano(String pano) {
    impl.setPano(jso, pano);
  }

  @Override
  public void setRoadColor(String roadColor) {
    impl.setRoadColor(jso, roadColor);
  }

  @Override
  public void setRoadOpacity(double roadOpacity) {
    impl.setRoadOpacity(jso, roadOpacity);
  }

  @Override
  public JavaScriptObject getJso() {
    return jso;
  }

}
